UNRAID实现家庭AIO服务 您所在的位置:网站首页 openwrt 群晖端口映射 UNRAID实现家庭AIO服务

UNRAID实现家庭AIO服务

2023-04-20 15:38| 来源: 网络整理| 查看: 265

b站不能直接markdown格式,更好的排版可看博客:

https://blog.80yes.ml/archives/8/

打算在公司分享给小伙伴的,但估计他们不太会看这玩意,放到b站吧

为什么要做这个分享?

当下组建成本低,国内相关服务费用高(视频会员、云盘年费不便宜,虚拟主机就更贵了)

家庭数据隐私要求高,平台喜欢跑路卖数据

一次努力全家人享受便捷,且过程中能学习到一些技术,也方便开展一些小研究

开始的前置条件

拥有公网IP的宽带为最佳(国内一般只有电信才有,可通过看WAN IP跟 ip.cn看到的是否一致来判断)

没有的话只能通过组建虚拟局域网来实现访问,这种一旦要服务游客就不太方便

家里有闲置的低功耗主机或者笔记本(待机功率建议在30w以内)

参考电费:30w 24小时开机费用 0.432元/天 * 365天 = 157.68元节能方案:设备需要支持网络唤醒数据盘要设置成可休眠或者用脚本设定睡觉时间关机目标:电费硬件折损能在家庭平时在网络平台的各项支出以下为妙

千兆或者以上的有线环境(如果是作为数据中心设备最好有多个网口且千兆以上)

笔记本没有有线的通过USB网卡也可以

有限制的大容量机械硬盘或者移动硬盘,也可以多块组合使用(相对费电)

现在固态硬盘价格血崩,入手一块做热数据盘,闲置的机械盘做冷备份美滋滋这边相对推荐用Intel平台(更好的兼容稳定性跟视频解码能力),可关注CPU的TDP数值一般在 15W以内,性能越好越佳为什么选择UNRAID作为服务器底层系统

直接用Windows、Linux桌面版作为宿主机系统的优势是维护的便捷,缺点也很明显选用低功率的设备自身性能就不高,安装桌面系统之后剩下的资源能分配给Docker以及虚拟机就非常有限了。

目前市场上比较主流的几个系统有以下:

群晖 synology

不选择它的原因是正版真的太贵而且是捆绑硬件一起销售,性价比很低,虽然它服务套件APP移动端体验是最好的,相册同步等功能也非常好用,对于不差钱且不需要开非常多服务或者虚拟机的人会比较合适

VMware ESXi

大名鼎鼎的VM在Windows操作系统上性能非常出色,无奈后面Windows有了亲儿子 Hyper-V之后对VM实际上有了打压动作(前期不兼容,到后面必须牺牲一部分性能让其可以跟Hyper-V共存),ESXi作为基于Linux底层的VM系统,稳定性跟性能都很出色,虚拟机性能是这几个底层系统里最好的,不选择它的原因是它的驱动更新较为缓慢对于一些新硬件兼容性相对弱一些,外加安装它本身需要一定的Linux基础而且界面上有点不太友好可玩性有点低。机器较老有注重稳定性的人可以选择使用它

Proxmox Virtual Environment (PVE)

开源的虚拟化平台,它基于Debian Linux操作系统和KVM虚拟化技术。它提供了一个可以用于管理虚拟机、容器和存储的Web控制台,但它的GUI能做的事情很有限虽然新版本已经有了很大的改善,但一些高级配置和管理选项,需要用户有一定的技术知识和经验才能很好地利用该平台。

Unraid

Unraid是一个基于Slackware Linux的操作系统,但它的正版是收费的,基础版是大约59美元,但毛子已经完美破解长期使用没有任何问题。它需要一个U盘作为系统盘,所以它的好处也从这里可以预见,它的系统升级不会影响数据盘也不会占用任何数据盘,不好的地方就是你得一直插着U盘,它是基于Webgui的这点跟ESXi和PVE一样,但它在操作和部署服务上比其它们简单不少,这要归功于它有一个强大的插件社区,可以处理本来应该去打命令的场景,尤其像是物理设备直通到虚拟机这样的操作,它只需要勾选重启即可,这点它有点像群晖的套件,但更为灵活,不少插件是通过docker的形式作为支持的,但它提供了模板,下面可以简单的做一些演示

选择Unraid的原因:它是一种折中,花更少的时间达成想要的效果,国内也有大量的用户哪里不懂也可以问我:)

常见的服务

家庭影音:使用基于Docker的 Jellyfin + 本地硬盘资源 或 你有大容量网盘会员不限速,通过映射成虚拟本地物理盘的方式进行快速加载影音(演示说明)

远程下载:一些不想一直开机又需要下载很久的资源,通过基于 Docker的 aria2 + webgui的模式进行挂机下载(演示说明)

科学上网:通常科学上网的客户端都需要安装软件,但家里有服务器开着就可以通过虚拟机启动一个openwrt 路由器系统作为家庭旁路由来作为流量网关就可以实现科学上网自由切换,也可以用基于Docker的梯子客户端做透明代理来实现目前公司也是通过此方式(演示说明)

家庭网盘:手机的照片视频,以及平时工作的资料同步等如果有(黑)群晖可直接使用它里面的Photos 和 Drive套件即可,如果没有可以使用轻量级的基于Docker的 Filerun(5个账号以内免费)或是Nextcloud,都有配套的客户端通过webdav协议进行管理同步(演示说明)

24小时跑定时脚本:使用基于DOcker的青龙面板可以轻松实现定时运行 python/node 脚本,github上有不少平台的自动签到跟羊毛脚本都是可通过这个面板实现,当然也可以用于定期抓数据等操作,Unraid如何搭建可参考此教程

如何外网访问这些服务?

公网条件

如果不介意域名后面加端口号,那么直接找一个提供免费二级域名的DDNS服务商就可以比如:https://dynv6.com/ 或者国内比较老牌的 https://pubyun.com/ 这些一般都可以通过定期执行脚本来做到动态IP绑定到域名,有些路由器也可以支持更推荐路由器来做可检测到IP变动来主动发起绑定,之后就是需要做端口映射,国内因为政策缘故,家庭宽带的80,8080以及443和25这些常见端口都是被屏蔽的,我们需要让路由器设定端口映射规则(演示说明)

大内网条件

这种通常无法做到外网直接访问的只能走类似 zerotier这样的虚拟局域网方案,把需要用到服务的用户全部拉到同一个虚拟局域网内,或者通过购买廉价的流量虚拟服务器来做反向代理流量转发(不是直连,速度由虚拟服务器连接到家庭服务器的速度以及再转发给使用客户的距离决定,如果你有亚洲服务器的梯子vps就可以这么搞速度也不会很慢)如何保证数据的安全性备份策略

系统需要一个单独的硬盘作为“奇偶盘”,通常这个盘是阵列里容量最大的盘可用于冗余备份系统必要数据(主要是docker跟虚拟机的数据)。而虚拟机跟docker通过挂载的数据可指定挂载到移动硬盘等外置大容量盘,这种场景,备份可考虑使用linux里常用的增量备份命令 rsync

以下是举例增量备份家庭网盘数据(源数据删除不会影响目标备份文件):

#!/bin/bash # 网盘归档备份目录 src="/mnt/disks/M1T/user-files/"dst="/mnt/disks/HDD1T/bk-user-files/"if [ -d "$dst" ]; then  if [ -w "$dst" ]; then    echo "开始备份 $src -> $dst...."    rsync -avz "$src" "$dst"    echo "备份完成"  else    echo "备份目录 $dst 不可写入"  fielse  echo "备份目录 $dst 不存在"fi

Js

Copy

但有些情况下不需要增量冗余的冷备份可以通过增加 --delete 参数来跟源目录保持同步:

#!/bin/bash # Unraid 数据归档备份目录 src="/mnt/user"dst="/mnt/disks/HDD1T/bk-unraid-user/"if [ -d "$dst" ]; then  if [ -w "$dst" ]; then    echo "开始备份 $src/ -> $dst...."    rsync -avz --delete --exclude "clouddrive2/cloud/*" --exclude "log/*" "$src/" "$dst"    echo "备份完成"  else    echo "备份目录 $dst 不可写入"  fielse  echo "备份目录 $dst 不存在"fi

Js

Copy

除此之外,Unraid还支持用户创建备份并定期将其备份到远程位置或云存储。用户可以自定义备份策略和方法以确保数据的安全性和完整性。

UNRAID (虚拟)局域网内SAMBA共享如何设置

系统默认的root主要是用来管理系统用,因此共享相关的权限需要在设置中增加一个专门用于共享的账号,再添加一个用于共享的目录并配置该目录对应挂载的位置,设置权限等级,大部分操作都可以通过WEBGUI完成(演示说明)

设备直通是什么概念?

设备直通 (Device Passthrough) 是一种虚拟化技术,它允许将物理设备(如GPU、网卡、磁盘控制器等)直接分配给虚拟机,从而提供与物理机相同的性能和可用性。通过设备直通,虚拟机可以通过完全控制和管理物理设备来获得更好的性能和内存管理,同时减少物理和虚拟机之间的通信开销,提高 I/O 性能。设备直通需要支持 Intel 的 VT-d 或者 AMD 的 IOMMU (Input Output Memory Management Unit)技术,这些技术可以提供硬件层面的隔离和访问控制。在设备直通时,虚拟机会创建一个 IOMMU 分组,将需要直通的设备添加至该分组,并且在虚拟机中配置相应的驱动程序。总的来说,设备直通是一种高级虚拟化技术,适用于需要高性能、低延迟以及所需硬件完全控制的应用场景。它已被广泛用于虚拟化桌面环境和高性能计算,然而对于一般用户而言,设备直通并不是必需的。(演示说明)

如何方便挂载读写USB移动盘,且文件系统是NTFS

可简单参考这个教程,主要思路还是安装 Unassigned Devices 插件,如果需要支持其他格式的还可以安装 Unassigned Devices Plus 插件,但这边要注意,自动挂载的 GID 跟 UID 都是 root,如果docker想要正常挂载之后读写有权限需要手动去做这个挂载处理,这边举例脚本,思路是先设定 GID 跟 UID 给挂载的盘:

# 先创建要挂载的位置并设置拥有者 mkdir -p /mnt/disks/M1Tchown 1000:1000 /mnt/disks/M1T# 这里使用 by-label 确保未来即便更换插入不同usb接口也能正确识别,utf8确保中文不会乱码 mount -t ntfs -o uid=1000,gid=1000,iocharset=utf8 /dev/disk/by-label/M1T /mnt/disks/M1T

Js

Copy

购置小主机推荐型号

零刻双网口N5105(准系统700以内) 或 N100 (准系统800以内,网卡太新目前暂无linux驱动)

低功耗被动散热的多网口工控机(淘宝居多)

如果是自己的闲置电脑或者笔记本尽量选intel 8代或者更新的自带核显的低压U,不然一般会比较费电

汇总关键服务或插件,详细教程可自行google或者ai协助

Unraid 正版的保姆级教程

Unraid 开心版

Unraid 安装 破解群晖

Jellyfin 开源影音

alist 网盘变网络映射盘

clouddrive2 阿里云盘、webdav变为本地硬盘(可以结合alist给jellyfin配合使用)

zerotier 虚拟局域网,实现没有公网的穿透访问(免费上限25个客户)



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有